Wireless communications with primary and secondary access categories

ABSTRACT

Systems and techniques relating to wireless communications are described. A described technique includes determining a primary access category for a transmission opportunity (TXOP) to transmit data to a primary wireless communication device based on a first back-off timer associated with the primary access category; determining a secondary access category for the TXOP to transmit data to a secondary wireless communication device; and transmitting, during the TXOP, spatially steered streams that concurrently provide separate data to respective devices comprising the primary and the secondary device. The technique can include controlling a contention window and a second back-off timer associated with the secondary access category, where the second back-off timer is not penalized for a communication failure associated with the primary access category or the secondary access category during the TXOP, and where the contention window is not penalized for the communication failure associated with the secondary access category during the TXOP.

CROSS REFERENCE TO RELATED APPLICATIONS

This disclosure is a continuation application of and claims the benefitof priority under 35 U.S.C. 120 of U.S. application Ser. No. 13/025,101,filed Feb. 10, 2011 (now U.S. Pat. No. 9,320,048), which claims thebenefit of the priority of U.S. Provisional Application Ser. No.61/377,395, filed Aug. 26, 2010 and entitled “VHT SDMA TX SequenceSupport.” This disclosure is related to U.S. patent application Ser. No.12/850,529, filed Aug. 4, 2010, and entitled “SDMA MULTI-DEVICE WIRELESSCOMMUNICATIONS.” All of the above identified applications areincorporated herein by reference in their entirety.

BACKGROUND

This disclosure relates to wireless communication systems, such asWireless Local Area Networks (WLANs).

Wireless communication systems can include multiple wirelesscommunication devices that communicate over one or more wirelesschannels. When operating in an infrastructure mode, a wirelesscommunication device called an access point (AP) provides connectivitywith a network, such as the Internet, to other wireless communicationdevices, e.g., client stations or access terminals (AT). Variousexamples of wireless communication devices include mobile phones, smartphones, wireless routers, and wireless hubs. In some cases, wirelesscommunication electronics are integrated with data processing equipmentsuch as laptops, personal digital assistants, and computers.

Wireless communication systems, such as WLANs, can use one or morewireless communication technologies, such as orthogonal frequencydivision multiplexing (OFDM). In an OFDM based wireless communicationsystem, a data stream is split into multiple data substreams. Such datasubstreams are sent over different OFDM subcarriers, which can bereferred to as tones or frequency tones. WLANs such as those defined inthe Institute of Electrical and Electronics Engineers (IEEE) wirelesscommunications standards, e.g., IEEE 802.11a, IEEE 802.11n, or IEEE802.11ac, can use OFDM to transmit and receive signals.

Some wireless communication systems use a single-in-single-out (SISO)communication approach, where each wireless communication device uses asingle antenna. Other wireless communication systems use amultiple-in-multiple-out (MIMO) communication approach, where a wirelesscommunication device, for example, uses multiple transmit antennas andmultiple receive antennas. A MIMO-based wireless communication devicecan transmit and receive multiple spatial streams over multiple antennasin each of the tones of an OFDM signal.

Wireless communication devices in a WLAN can use one or more protocolsfor medium access control (MAC). For example, a wireless communicationdevice can use Enhanced Distributed Channel Access (EDCA) for contentionbased medium access control. In another example, a device can use ahybrid coordination function (HCF) to implement HCF controlled channelaccess (HCCA) for contention-free access to a wireless medium. A HCF canprovide EDCA for access during a contention period and HCCA for accessduring a contention-free period.

SUMMARY

The present disclosure includes systems and techniques for wirelesscommunications.

According to an aspect of the present disclosure, a technique forwireless communications includes determining a primary access categoryfor a transmission opportunity (TXOP) to transmit data to a primarywireless communication device, the primary access category being anaccess category included in a group of access categories that areassociated with different transmission priorities, respectively;retrieving one or more primary data units belonging to the primaryaccess category to transmit to the primary wireless communication deviceduring the TXOP; determining a secondary access category for the TXOP,the secondary access category being an access category included in thegroup of access categories, the secondary access category having atransmission priority different from the primary access category;retrieving one or more secondary data units belonging to the secondaryaccess category to transmit to a secondary wireless communication deviceduring the TXOP; and transmitting spatially steered streams during theTXOP, the steered streams embodying the one or more primary data unitsand the one or more secondary data units.

The technique, and other implementations, can include including the oneor more primary data units in a multi-user frame, determining a lengthof the multi-user frame based on the one or more primary data units; andlimiting a length of the one or more secondary data units in themulti-user frame based on the determined length. Transmitting caninclude transmitting the multi-user frame during a portion of the TXOP.Implementations can include causing the primary wireless communicationdevice that receives at least a portion of the one or more primary dataelements to send a first acknowledgement response after an end of themulti-user frame. Implementations can include causing the secondarywireless communication device that receives at least a portion of theone or more secondary data elements to send a second acknowledgementresponse after an end of a transmission period for the firstacknowledgement response. Transmitting the steered streams can includetransmitting two or more data frames that are associated with two ormore different traffic identifiers (TIDs) to two or more destinations,respectively. Determining the secondary access category for the TXOP caninclude determining two or more secondary access categories for theTXOP.

Determining the secondary access category can include selecting thesecondary access category having a transmission priority higher than theprimary access category. Determining the primary access category caninclude determining the TXOP based on a back-off timer associated withthe primary access category. The TXOP can be based on EnhancedDistributed Channel Access (EDCA). Implementations can includecontrolling a back-off timer associated with the secondary accesscategory. In some implementations, the controlled back-off timer is notpenalized for a communication failure associated with the primary accesscategory during the TXOP. Implementations can include starting arecovery back-off associated with the primary access category based on alack of receiving an immediate acknowledgement response. Retrieving theone or more secondary data elements units can include resetting aback-off timer associated with the secondary access category.Implementations can include using a hybrid coordination function (HCF)to control access to wireless communication resources. The TXOP can bebased on HCF controlled channel access (HCCA).

The described systems and techniques can be implemented in electroniccircuitry, computer hardware, firmware, software, or in combinations ofthem, such as the structural means disclosed in this specification andstructural equivalents thereof. This can include at least onecomputer-readable medium embodying a program operable to cause one ormore data processing apparatus (e.g., a signal processing deviceincluding a programmable processor) to perform operations described.Thus, program implementations can be realized from a disclosed method,system, or apparatus, and apparatus implementations can be realized froma disclosed system, computer-readable medium, or method. Similarly,method implementations can be realized from a disclosed system,computer-readable medium, or apparatus, and system implementations canbe realized from a disclosed method, computer-readable medium, orapparatus.

For example, one or more disclosed embodiments can be implemented invarious systems and apparatus, including, but not limited to, a specialpurpose data processing apparatus (e.g., a wireless communication devicesuch as a wireless access point, a remote environment monitor, a router,a switch, a computer system component, a medium access unit), a mobiledata processing apparatus (e.g., a wireless client, a cellulartelephone, a smart phone, a personal digital assistant (PDA), a mobilecomputer, a digital camera), a general purpose data processing apparatussuch as a computer, or combinations of these.

Details of one or more implementations are set forth in the accompanyingdrawings and the description below. Other features and advantages may beapparent from the description and drawings, and from the claims.

DRAWING DESCRIPTIONS

FIG. 1 shows an example of a wireless medium access control architecturethat includes a controller for a primary access category of atransmission opportunity and a controller for a secondary accesscategory of the transmission opportunity.

FIG. 2 shows an example of a wireless network with two wirelesscommunication devices.

FIG. 3 shows an example of a wireless communication device architecture.

FIG. 4 shows an example of a communication process that includesdetermining multiple access categories for a transmission opportunity.

FIG. 5 shows an example of a communication process for determining oneor more secondary access categories of a transmission opportunity.

FIG. 6 shows an example of communication activities between multipledevices during a transmission opportunity.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This disclosure provides details and examples of technologies forwireless local area networks, including, among other things, systems andtechniques for wireless communications based on primary and secondaryaccess categories. A described technique includes determining a primaryaccess category for a transmission opportunity and one or more secondaryaccess categories for the transmission opportunity. Potential advantagesof one or more of the described technologies can include increasedutilization of a transmission opportunity, the capability of sendingdata belonging to two or more access categories having differenttransmission priorities in the same transmission opportunity, or acombination thereof. The techniques and architectures presented hereincan be implemented in a variety of wireless communication systems, suchas ones based on IEEE 802.11n or IEEE 802.11ac. One of more of thedescribed systems and techniques can be combined with technologydisclosed by U.S. patent application Ser. No. 12/850,529, filed Aug. 4,2010, and entitled “SDMA MULTI-DEVICE WIRELESS COMMUNICATIONS.”

FIG. 1 shows an example of a wireless medium access control architecturethat includes a controller for a primary access category of atransmission opportunity and a controller for a secondary accesscategory of the transmission opportunity. A wireless communicationdevice 100 transmits data during a transmission opportunity (TXOP) basedon one or more wireless communication protocols. A medium access control(MAC) architecture of the wireless communication device 100 includes anaccess category (AC) queue manager 105, primary access categorycontroller 120, secondary access category controller 130, and a TXOPhandler 140. The device 100 can include additional secondary accesscategory controllers (not shown). In some implementations, the primaryaccess category controller 120 includes the secondary access categorycontroller 130. In some implementations, the queue manager 105 includesthe primary access category controller 120 and the secondary accesscategory controller 130.

The access category queue manager 105 manages multiple access categoryqueues (e.g., AC1, AC2, AC3, and AC4). Various examples of accesscategories include an access category for best-effort traffic, an accesscategory for voice traffic, an access category for video traffic, and anaccess category for background traffic. An access category can beassociated with one or more transmission parameters such as anArbitration Inter Frame Spacing (AIFS) value, a minimum contentionwindow value (CWmin), and a maximum contention window value (CWmax).Different transmission priorities can be realized based on differentvalues for one or more of the transmission parameters. In someimplementations, the access category queue manager 105 manages two ormore access category queues for the same type of traffic (e.g., voice,video, best-effort, background), but are associated with differenttraffic identifiers (TIDs). For example, a voice access category havinga TID of 5 can have a higher transmission priority than a voice accesscategory having a TID of 4. The device 100 can provide multiple levelsof Quality-of-Service (QoS) based on traffic identifiers, accesscategories, or both. In some implementations, an access category queuecan be partitioned into two or more queues that store data elements forseparate recipient devices.

The primary controller 120 can determine a primary access category for aTXOP based on back-off durations associated with respective accesscategory queues. In some implementations, the primary controller 120determines a primary access category for a TXOP based on the expirationof a back-off timer and the wireless medium being idle. In someimplementations, an expiration of a back-off timer can be set based onone or more transmission parameters (e.g., an AIFS value, CWmin value,CWmax value, or a combination thereof) and a random value. In somecases, a back-off timer associated with an access category queue isstarted in response to inserting one or more data elements into an emptyaccess category queue. In some implementations, the primary controller120 performs an internal collision resolution to select an accesscategory for a TXOP.

The secondary controller 130 can determine one or more secondary accesscategories for the TXOP. Determining one or more secondary accesscategories can include querying the access category queue manager 105 toretrieve a list of non-empty access category queues. Based on the list,the secondary controller 130 can select an access category queue. Thesecondary controller 130 can receive an indication from the primarycontroller 120 regarding the identity of the primary access category.The secondary controller 130 can select a secondary access category thatis different from the primary access category. In some cases, thesecondary access category has a higher transmission priority than theprimary access category. In some other cases, the secondary accesscategory has a lower transmission priority than the primary accesscategory.

Based on determining a primary access category for the TXOP, the primaryTXOP access category controller 120 can retrieve one or more dataelements belonging to an access category deemed the primary accesscategory for the TXOP. The secondary TXOP access category controller 130can retrieve one or more data elements belonging to an access categorydeemed a secondary access category for the TXOP. The retrieved dataelements can be provided to the TXOP handler 140. Various examples ofdata elements include a data unit, a portion of a data unit, or a stringof one or more bits. Other types of data elements are possible. A dataunit can be based on an aggregate data unit format that specifiessignaling for aggregating multiple medium access control (MAC) dataunits (e.g., MAC protocol data units (MPDUs)) into aggregate data unit(e.g., aggregated MPDU (A-MPDU)).

For a Space Division Multiple Access (SDMA) transmission during theTXOP, the TXOP handler 140 can provide to a physical (PHY) layer module(not shown) data streams that are intended for separate wireless devicerecipients via respective spatially steered streams. The handler 140receives primary data from the primary controller 120 and secondary datafrom the secondary controller 130. Based on the primary and secondarydata, the handler 140 can arrange the data into one or more multi-user(MU) frames. A MU frame can include two or more data frames forrespective wireless devices. A data frame can include one or more dataunits, or at least a portion of a data unit. The length of the TXOP canbe determined by the primary access category traffic.

In some implementations, the primary TXOP access category controller 120selects a first recipient device having primary access category data fora first multi-user transmission in a TXOP. The TXOP handler 140 caninclude a multi-user controller. Based on available spatial resources, amulti-user controller can select a multi-user group including theselected first recipient device. Based on data information for allmulti-user recipients associated with the TXOP, the multi-usercontroller can determine, for a subsequent multi-user transmission(s),whether the primary access category or a secondary access category isselected for each recipient device.

A wireless communication device 100 can include circuitry to access awireless communication interface and processor electronics configured toperform one or more techniques described herein. For example, processorelectronics can be configured to implement the functionality of anaccess category (AC) queue manager 105, primary access categorycontroller 120, secondary access category controller 130, and a TXOPhandler 140. A wireless communication interface can include circuitry totransmit and receive wireless communication signals. In someimplementations, a communication process running on the device 100 sendsa digital signal(s) indicative of two or more streams to a wirelesscommunication interface, which converts the digital signal(s) into ananalog signal(s). Transmitting the streams can include transmittingsignals that concurrently provide separate data to two or more devices.

FIG. 2 shows an example of a wireless network with two wirelesscommunication devices. Wireless communication devices 205, 207 such asan access point (AP), base station (BS), wireless headset, accessterminal (AT), client station, or mobile station (MS) can includecircuitry such as processor electronics 210, 212. Processor electronics210, 212 can include one or more processors that implement one or moretechniques presented in this disclosure. Wireless communication devices205, 207 include circuitry such as transceiver electronics 215, 217 tosend and receive wireless signals over one or more antennas 220 a, 220b, 222 a, 222 b. Wireless communication devices 205, 207 can communicatewith one or more types of devices (e.g., devices based on differentwireless communication standards) such as a high-throughout (HT) device(e.g., IEEE 802.11n based device) or a very high-throughout (VHT) device(e.g., IEEE 802.11ac based device).

In some implementations, transceiver electronics 215, 217 includeintegrated transmitting and receiving circuitry. In someimplementations, transceiver electronics 215, 217 include multiple radiounits. In some implementations, a radio unit includes a baseband unit(BBU) and a radio frequency unit (RFU) to transmit and receive signals.Transceiver electronics 215, 217 can include one or more of: detector,decoder, modulator, and encoder. Transceiver electronics 215, 217 caninclude one or more analog circuits. Wireless communication devices 205,207 include one or more memories 225, 227 configured to storeinformation such as data, instructions, or both. In someimplementations, wireless communication devices 205, 207 includededicated circuitry for transmitting and dedicated circuitry forreceiving. In some implementations, a wireless communication device 205,207 is operable to act as a serving device (e.g., an access point), or aclient device.

A first wireless communication device 205 can transmit data to one ormore devices via two or more spatial wireless communication channelssuch as orthogonal spatial subspaces, e.g., orthogonal SDMA subspaces.For example, the first wireless communication device 205 canconcurrently transmit data to a second wireless communication device 207using a spatial wireless channel and can transmit data to a thirdwireless communication device (not shown) using a different spatialwireless channel. In some implementations, the first wirelesscommunication device 205 implements a space division technique totransmit data to two or more wireless communication devices using two ormore spatial multiplexing matrices to provide spatially separatedwireless channels in a single frequency range.

Wireless communication devices, such as a MIMO enabled access point, cantransmit signals for multiple client wireless communication devices atthe same time in the same frequency range by applying one or moretransmitter side beam forming matrices to spatially separate signalsassociated with different client wireless communication devices. Basedon different signal patterns at the different antennas of the wirelesscommunication devices, each client wireless communication device candiscern its own signal. A MIMO enabled access point can participate insounding to obtain channel state information for each of the clientwireless communication devices. The access point can compute spatialmultiplexing matrices, such as spatial steering matrices, based on thedifferent channel state information to spatially separate signals todifferent client devices.

FIG. 3 shows an example of a wireless communication device architecture,which can include the various implementation details described herein. Awireless communication device 350 can produce signals for differentclients that are spatially separated by respective spatial multiplexingmatrices W_(i), e.g., steering matrices. Each W_(i) is associated with asubspace. The wireless communication device 350 includes a MAC module355. The MAC module 355 can include one or more MAC control units (MCUs)(not shown). The MAC module 355 can include components that are depictedby the MAC architecture of FIG. 1.

The wireless communication device 350 includes three or more encoders360 a, 360 b, 360 c that receive data streams, from the MAC module 355,for N respective client devices. The encoders 360 a-c can performencoding, such as a forward error correction (FEC) encoding technique toproduce respective encoded streams. Modulators 365 a, 365 b, 365 c canperform modulation on respective encoded streams to produce modulatedstreams provided to spatial mapping modules 370 a, 370 b, 370 c.

The spatial mapping modules 370 a-c can access a memory (not shown) toretrieve a spatial multiplexing matrix W_(i) associated with a datastream's intended client device. In some implementations, the spatialmapping modules 370 a-c access the same memory, but at different offsetsto retrieve different matrices. An adder 375 can sum spatially steeredoutputs from the spatial mapping modules 370 a-c.

An Inverse Fast Fourier Transform (IFFT) module 380 can perform an IFFTon an output of the adder 375 to produce a time domain signal. A digitalfiltering and radio module 385 can filter the time domain signal andamplify the signal for transmission via an antenna module 390. Anantenna module 390 can include multiple transmit antennas and multiplereceive antennas. In some implementations, an antenna module 390 is adetachable unit that is external to a wireless communication device 350.

In some implementations, a wireless communication device 350 includesone or more integrated circuits (ICs). In some implementations, a MACmodule 355 includes one or more ICs. In some implementations, a wirelesscommunication device 350 includes an IC that implements thefunctionality of multiple units and/or modules such as a MAC module,MCU, BBU, or RFU. In some implementations, a wireless communicationdevice 350 includes a host processor that provides a data stream to aMAC module 355 for transmission. In some implementations, a wirelesscommunication device 350 includes a host processor that receives a datastream from the MAC module 355. In some implementations, a hostprocessor includes a MAC module 355.

A MAC module 355 can generate a MAC Service Data Unit (MSDU) based ondata received from higher level protocols such a Transmission ControlProtocol over Internet Protocol (TCP/IP). A MAC module 355 can generatea MAC Protocol Data Unit (MPDU) based on a MSDU. In someimplementations, a MAC module 355 can generate a Physical Layer ServiceData Unit (PSDU) based on a MPDU. For example, a wireless communicationdevice can generate a data unit (e.g., a MPDU or a PSDU) that isintended for a single wireless communication device recipient. APhysical Layer Protocol Data Unit (PPDU) can encapsulate a PSDU.

A wireless communication device 350 can perform omni-directionaltransmissions that are intended for multiple client devices. Forexample, the MAC module 355 can operate a single data pathway betweenthe MAC module 355 and the IFFT module 380 to cause an omni-directionaltransmission. The device 350 can perform steered transmissions thatconcurrently provide separate data to multiple client devices. Thedevice 350 can alternate between omni-directional transmissions andsteered transmissions. In steered transmissions, the device 350 cantransmit a first PPDU to a first client via a first spatial wirelesschannel and concurrently transmit a second PPDU to a second client via asecond spatial wireless channel.

FIG. 4 shows an example of a communication process that includesdetermining multiple access categories for a TXOP. A communicationprocess can be implemented by a device such an access point device or aclient device. At 405, the communication process determines a primaryaccess category for a TXOP. For example, the primary access category canbe an access category included in a group of access categories that areassociated with different transmission priorities, respectively. Thecommunication process can include determining a primary device for theTXOP.

In some implementations, the process to obtain a TXOP is based onEnhanced Distributed Channel Access (EDCA). Determining the primaryaccess category can include determining the TXOP based on a back-offtimer associated with the primary access category. The process can runmultiple EDCA functions (EDCAF) that correspond to respective accesscategories. In some implementations, an EDCAF that wins internalcollision decides the primary access category of an EDCA based TXOP. Insome other implementations, the communication process uses a hybridcoordination function (HCF) to control access to wireless communicationresources, and the TXOP is based on HCF controlled channel access(HCCA).

At 410, the communication process retrieves one or more primary dataunits belonging to the primary access category to transmit to a firstdevice during the TXOP. Retrieving data units can include retrieving anA-MPDU. In some cases, retrieving an A-MPDU can include accessing aportion of an A-MPDU to generate a data unit fragment.

At 415, the communication process determines at least one secondaryaccess category for the TXOP. The secondary access category is an accesscategory included in the group of access categories. The secondaryaccess category has a transmission priority different from the primaryaccess category. In some cases, determining a secondary access categorycan include selecting an access category having a transmission priorityhigher than the primary access category. The communication process candetermine additional secondary access categories for the TXOP based onthere being available communication resources to transmit data in theTXOP.

At 420, the communication process retrieves one or more secondary dataunits belonging to the secondary access category to transmit to a seconddevice during the TXOP. Retrieving data units can include retrieving anA-MPDU.

At 425, the communication process transmits spatially steered streams towireless communication devices during the TXOP. The steered streams canembody the one or more primary data units and the one or more secondarydata units. During a TXOP, one or more multi-user frames can betransmitted consecutively. Transmitting the steered streams can includetransmitting two or more data frames that are associated with two ormore different TIDs to two or more destinations, respectively. In someimplementations, the communication process selects an access categoryfor each recipient device of a multi-user frame.

In a multi-user frame, there are two or more data frames for respectivetwo or more different recipients. In some implementations, a data frameincludes data belonging to the same access category and same recipient.The length of the multi-user frame can be determined based on the dataframe having the longest length. In some implementations, the length ofa multi-user frame is determined by the max-length data frame among oneor more primary access category data frames. In some implementations,any secondary access category data frames included in the multi-userframe are limited to be less than or equal to the length set by themax-length primary data frame. In some implementations, the length ofthe multi-user frame is determined by the max-length data frame amongall primary access category and secondary access category data frame.

A TXOP holder device (e.g., a wireless device, running the process ofFIG. 4) can include one or more primary data units in a multi-userframe. The device can determine a length of the multi-user frame basedon the one or more primary data units. In some implementations, thedevice can limit a length the one or more secondary data units in themulti-user frame based on the determined length. For example, whereas alength of a multi-user frame can be adjusted to accommodate the primarydata units, the length is not adjusted to accommodate the secondary dataunits. Secondary data units that are not selected for a multi-user framecan be selected for a following multi-user frame in a TXOP. For example,retrieving secondary data units can include retrieving an A-MPDU that islonger than the determined length of the multi-user frame. In such acase, the retrieved A-MPDU can be fragmented over two or more multi-userframes in a TXOP.

A TXOP holder device can cause recipients of a multi-user frame to sendacknowledgement responses at different times. The TXOP holder device cancontrol a recipient that receives at least a portion of the one or moreprimary data units to send a first acknowledgement response after an endof the multi-user frame. The TXOP holder device can control a recipientthat receives at least a portion of the one or more secondary data unitsto send a second acknowledgement response after an end of a transmissionperiod for the first acknowledgement response. In some implementations,the TXOP holder device can send a poll frame to control a recipientdevice to send an acknowledgement response.

In some implementations, a TXOP holder device transmits and exhaustsprimary access category data before transmitting secondary accesscategory data. For example, based on the primary access category databeing ready, the TXOP holder device transmits the primary accesscategory data before the secondary access category data. In someimplementations, based on the device starting to transmit secondaryaccess category data, the TXOP holder device does not switch back totransmitting the primary access category data later on in the same TXOP.In some implementations, based on the secondary access category datahaving a higher priority than the primary access category data, the TXOPholder device is allowed to switch from transmitting the primary accesscategory to transmitting secondary access category and, after completingsecondary access category data, then switch back to transmittingadditional primary access category data.

In some implementations, when the TXOP holder device plans one or moremulti-user transmissions in a TXOP, the TXOP holder device can startfrom primary data to secondary data for multi-user transmissionsrecipients. If primary data are available for a multi-user transmissionrecipient, the TXOP holder device can transmit primary data for thereceiver first; and based on primary data not being available for areceiver, the TXOP holder device can schedule secondary access categorydata for the receiver. Based on a primary data transmission to areceiver and a subsequent second data transmission to the receiver, theTXOP holder device, in some implementations, is required to not switchback to transmitting primary data to the receiver. In someimplementations, once the transmission of primary data for all receivershas been transmitted in a TXOP, the TXOP holder device ends the TXOP.

In some implementations, when the TXOP holder device plans one or moremulti-user transmissions in a TXOP, the TXOP holder device can selecteither a primary access category or any secondary access category for areceiver as far as the TXOP holder device can ensure that one or moremulti-user transmissions during the TXOP include at least one primaryaccess category data frame. For example, the TXOP holder device can picka primary access category for receiver A and a secondary access categoryfor receiver B in the first transmission; and pick a secondary accesscategory for receiver A and primary access category for receiver B inthe second transmission; and pick primary access category for receiver Aand another secondary access category for receiver B in the thirdtransmission.

FIG. 5 shows an example of a communication process for determining oneor more secondary access categories of a TXOP. At 505, a communicationprocess allocates one or more communication resources for one or moreprimary data units. Allocating communication resources can includescheduling a spatial wireless communication channel for a specific timeperiod. Based on determining a primary access category and a receiver ofthe primary access category data and there being available communicationresources, the communication process determines one or more MU receiversthat can share the communication resources with the first receiver.Based on the available data in all MU receivers, the MU transmitter candetermine the secondary access category data that can be piggybacked tothe primary access category data.

At 510, the communication process determines whether there is an accesscategory with a higher priority than the primary access category of theTXOP. Such determining can include identifying access categories havingdata for transmission. Based on there being an access category with ahigher priority and data ready to send, the communication process, at515, selects the access category as a secondary access category of theTXOP. At 520, the communication process allocates one or morecommunication resources for the secondary data units. Based on anallocation, the secondary data units can be removed from a correspondingaccess category queue. In some implementations, the secondary data unitsare marked as being allocated and are not available for furtherallocation during a TXOP. At 525, the communication process determineswhether there are one or more remaining resources for the TXOP. Based onat least one remaining resource being available, the communicationprocess repeats the determining at 510 to select one or more additionalsecondary access categories. If there are no more available resources,then the communication process, at 550, is finished identifying accesscategories for the TXOP.

Based on there being no access categories, or no more access categories,with higher priorities than the primary access category that have datafor transmission, the communication process, at 530, determines whetherthere is an access category with a lower priority than the primaryaccess category of the TXOP. Based on there being an access categorywith a lower priority, the communication process, at 535, selects theaccess category as a secondary access category of the TXOP. Based onthere being multiple access categories with lower priority, the processcan select one having higher priority. At 540, the communication processallocates one or more communication resources for one or more secondarydata units. At 545, the communication process determines whether thereare one or more remaining resources for the TXOP. Based on at least oneremaining resource being available, the communication process repeatsthe determining at 530 to select additional secondary access categories.If there are no more available resources, then the communicationprocess, at 550, is finished identifying access categories for the TXOP.In some cases, the communication process finishes identifying accesscategories for the TXOP based on there being no more data ready fortransmission.

A communication process can determine a multi-user group (e.g., a groupof recipients of a MU transmission) for a MU transmission. In someimplementations, once a multi-usergroup is determined, and the primaryaccess category is assigned to one multi-user receiver, for otherreceivers, access categories with available data can be treated equally.The access category picking for each receiver can be based on factorssuch as the overall TXOP throughput, available data priorities, andmulti-user receiver priorities.

FIG. 6 shows an example of communication activities between multipledevices during a TXOP. An AP can transmit two or more MU frames 605, 610during a TXOP 600. In this example, a primary access category for theTXOP 600 is “AC3” and a secondary access category for the TXOP 600 is“AC4.” As depicted by FIG. 6, recipients of the MU frames 605, 610include devices STA-1, STA-2, and STA-3.

A first MU frame 605 includes three spatially steered data frames 615 a,615 b, 615 c for respective devices, STA-1, STA-2, and STA-3. The MUframe 605 includes a preamble portion 607, which can include steered andunsteered preamble portions. A first data frame 615 a includes a dataunit from the AC3 queue for STA-1. Because the first data frame 615 aincludes data from the primary access category, the first data frame 615a can be referred to as a primary data frame of the MU frame 605. Asecond data frame 615 b includes a data unit from the AC4 queue forSTA-2. Because the second data frame 615 b includes data from asecondary access category, the second data frame 615 b can be referredto as a secondary data frame of the MU frame 605. A third data frame 615c includes a data unit from the AC4 queue for STA-3. Because the thirddata frame 615 c includes data from a secondary access category, thethird data frame 615 c can be referred to as a secondary data frame ofthe MU frame 605. A data frame 615 b, 615 c can include padding. In someimplementations, a data frame 615 a, 615 b, 615 c includes a data unitsuch as an A-MPDU. The recipient devices can send acknowledgementresponses such as block acknowledgements (BA) 630 a, 630 b, 630 c aftersuccessfully receiving their respective data frames 615 a, 615 b, 615 c.

A second MU frame 610 includes three spatially steered data frames 620a, 620 b, 620 c for respective devices, STA-1, STA-2, and STA-3. The MUframe 610 includes a preamble portion 625, which can include steered andunsteered preamble portions. A first data frame 620 a includes a dataunit from the AC4 queue for STA-1. Because the first data frame 620 aincludes data from a secondary access category, the first data frame 620a can be referred to as a secondary data frame of the MU frame 610. Asecond data frame 620 b includes a data unit from the AC4 queue forSTA-2. Because the second data frame 620 b includes data from asecondary access category, the second data frame 620 b can be referredto as a secondary data frame of the MU frame 610. A third data frame 620c includes a data unit from the AC3 queue for STA-3. Because the thirddata frame 620 c includes data from the primary access category, thethird data frame 620 c can be referred to as a primary data frame of theMU frame 610. The recipient devices can send acknowledgement responsessuch as block acknowledgements (BA) 640 a, 640 b, 640 c aftersuccessfully receiving their respective data frames 620 a, 620 b, 620 c.

In some implementations, the duration of a MU frame in a TXOP isdetermined by the longest PPDU belonging to the primary access categoryfor the TXOP. In some implementations, the duration is not extended toaccommodate a longer PPDU belonging to a secondary access category. Insome implementations, a secondary access category PPDU that would extendpast the end of the MU frame is fragmented into two or more frames. Insome implementations, the longest primary access category PPDU is notpadded (e.g., adding padding delimiters to the end of the A-MPDU, PSDU,or both) with additional symbols to accommodate a longer secondaryaccess category PPDU. In some implementations, the longest primaryaccess category PPDU does not contain unnecessary zero-length delimiters(e.g., between A-MPDU subframes or at the end of the PPDU) that wouldextend the PPDU to have one or more extra symbols in order toaccommodate a longer secondary access category PPDU. In someimplementations, a transmitting device does not lower the Modulation andCoding Scheme (MCS) of the longest primary access category PPDU toextend the PPDU with extra symbols in order to accommodate a longersecondary access category PPDU. The transmitting device can decide theMCS for the primary access category PPDU(s) by concluding PPDUs withinthe MU frame belong to the primary access category. In someimplementations, PPDUs in a MU frame (including primary and secondaryaccess category PPDUs) are adjusted to match the length of the longestPPDU with priority greater than the primary access category. In someimplementations, the MU frame length is determined by the longest PPDUin the frame, disregarding the access category of the PPDU. In otherwords, if the longest PPDU belong to a secondary access category, theprimary access category PPDU can be extended or padded to match thelength of the longest PPDU.

Based on a SDMA transmission of a MU frame, a transmitting device canreceive immediate responses (e.g., acknowledgment responses) from one ormore of the recipient devices associated with the SDMA transmission. Oneor more of the individual transmissions embodied by a SDMA transmissionmay be received unsuccessfully. An immediate response may indicate thata recipient did not successfully receive its individual transmission.Based on an individual transmission within a SDMA transmission failing,the corresponding EDCAF performs a medium access recovery with a longerback-off. A retransmission can be started based on the end of therecovery back-off. In some implementations, in cases where a failedindividual transmission belongs to the primary access category or TID ofthe TXOP, the transmitting device can perform a channel access recoverywith a longer back-off before retransmission(s). The retransmissions canbe performed with other new transmissions in a SDMA transmission. Incases where a failed individual transmission belongs to a accesscategory or TID different from the primary access category or TID of theTXOP, the transmitting device can perform channel access recovery forEDCAFs corresponding to the failed transmissions. Such EDCAFs can begranted new SDMA transmission opportunities after the channel accessrecovery back-off, whereas other EDCAFs are not required to performchannel access recovery. In some implementations, only when the firstresponse to the first transmission in a TXOP is not received, thetransmitter starts a recovery back-off based on the EDCAF or accesscategory associated with the PPDU that elicits the first response. Ifthe first response is received correctly, the transmitter can continueusing the remaining TXOP to transmit data even if some of the followingtransmissions fail. In some implementations, the PPDU in the firsttransmission that elicits the first response shall belong to a primaryaccess category. In some implementations, the PPDU in the firsttransmission that elicits the first response can belong to any accesscategory associated with the TXOP, and if the first response is notreceived correctly, the transmitter starts recovery back-off based onthe primary access category, and the secondary access categories'back-off timers are not affected.

At the beginning of a TXOP, the back-off timers of secondary accesscategories can be suspended. Based on there being no transmissionfailures during the TXOP, a back-off timer(s) of a secondary accesscategory(s) involved in a MU transmission during the TXOP can resumeonce the medium is idle for AIFS after the TXOP. In other words,multi-access category transmissions do not affect the back-off timer(s)of a secondary access category(s). In some implementations, thecontention window (CW) for a secondary access category is reset to acorresponding CWmin value, and a corresponding back-off timer isrecalculated.

Based on there being a transmission failure of a PPDU belonging to aprimary access category of a TXOP, for a secondary access categoryinvolved in any MU transmission in the TXOP that does not result in atransmission failure, a corresponding back-off timer can resume once themedium is idle for AIFS. In some implementations, the contention windowfor a secondary access category is unchanged, and a correspondingback-off timer is recalculated. In some implementations, the contentionwindow for a secondary access category changes based onCW_NEW=((CW_OLD+1)*2−1), and a corresponding back-off timer isrecalculated. In some implementations, the contention window for asecondary access category is reset to a corresponding CWmin value, and acorresponding back-off timer is recalculated.

Based on there being a PPDU transmission failure belonging to asecondary access category of a TXOP, the back-off timer for thesecondary access category can resume once the medium is idle for AIFS.In some implementations, the contention window for the secondary accesscategory is unchanged, and a corresponding back-off timer isrecalculated. In some implementations, the contention window for thesecondary access category changes based on CW_NEW=((CW_OLD+1)*2−1), anda corresponding back-off timer is recalculated.

The back-off timer for a primary access category can be affected basedon there being a transmission failure for a secondary access categoryPPDU. For such a case, in some implementations, the contention windowfor the primary access category is unchanged, and a correspondingback-off timer is recalculated. In some implementations, the contentionwindow for the primary access category changes based onCW_NEW=((CW_OLD+1)*2−1), and a corresponding back-off timer isrecalculated. In some implementations, the contention window for theprimary access category is reset to a corresponding CWmin value, and acorresponding back-off timer is recalculated.

Based on there being a PPDU transmission failure belonging to asecondary access category of a TXOP, for other secondary accesscategories involved in one or more MU transmissions in the TXOP that donot result in a transmission failure, the corresponding back-off timerscan resume once the medium is idle for AIFS. In some implementations,the contention windows for these other secondary access categories areunchanged, and the corresponding back-off timers are recalculated. Insome implementations, the contention windows for these other secondaryaccess categories change based on CW_NEW=((CW_OLD+1)*2−1), andcorresponding back-off timers are recalculated. In some implementations,the contention windows for these other secondary access categories arereset to a corresponding CWmin value, and corresponding back-off timersare recalculated.

A few embodiments have been described in detail above, and variousmodifications are possible. The disclosed subject matter, including thefunctional operations described in this specification, can beimplemented in electronic circuitry, computer hardware, firmware,software, or in combinations of them, such as the structural meansdisclosed in this specification and structural equivalents thereof,including potentially a program operable to cause one or more dataprocessing apparatus to perform the operations described (such as aprogram encoded in a computer-readable medium, which can be a memorydevice, a storage device, a machine-readable storage substrate, or otherphysical, machine-readable medium, or a combination of one or more ofthem).

The term “data processing apparatus” encompasses all apparatus, devices,and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them.

A program (also known as a computer program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, or declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment. A program does notnecessarily correspond to a file in a file system. A program can bestored in a portion of a file that holds other programs or data (e.g.,one or more scripts stored in a markup language document), in a singlefile dedicated to the program in question, or in multiple coordinatedfiles (e.g., files that store one or more modules, sub programs, orportions of code). A program can be deployed to be executed on onecomputer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of what may be claimed, but ratheras descriptions of features that may be specific to particularembodiments. Certain features that are described in this specificationin the context of separate embodiments can also be implemented incombination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesubcombination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments.

Other embodiments fall within the scope of the following claims.

What is claimed is:
 1. A method comprising: determining a primary accesscategory for a transmission opportunity (TXOP) to transmit data to aprimary wireless communication device, the primary access category beingan access category included in a group of access categories that areassociated with different transmission priorities, respectively, whereindetermining the primary access category comprises determining the TXOPbased on a first back-off timer associated with the primary accesscategory; determining a secondary access category for the TXOP totransmit data to a secondary wireless communication device, thesecondary access category being an access category included in the groupof access categories, the secondary access category having atransmission priority different from the primary access category;transmitting, via two or more antennas during the TXOP, spatiallysteered streams that concurrently provide separate data to respectivedevices comprising the primary wireless communication device and thesecondary wireless communication device, the spatially steered streamsembodying (i) one or more primary data units associated with the primaryaccess category and (ii) one or more secondary data units associatedwith the secondary access category; and controlling a second back-offtimer associated with the secondary access category and a contentionwindow associated with the secondary access category, wherein the secondback-off timer is not penalized for a communication failure associatedwith the primary access category during the TXOP or for a communicationfailure associated with the secondary access category during the TXOP,and wherein the contention window is not penalized for the communicationfailure associated with the secondary access category during the TXOP.2. The method of claim 1, comprising: including the one or more primarydata units in a multi-user frame; determining a length of the multi-userframe based on the one or more primary data units; and limiting a lengthof the one or more secondary data units in the multi-user frame based onthe determined length, wherein the transmitting comprises transmittingthe multi-user frame during a portion of the TXOP.
 3. The method ofclaim 2, comprising: causing the primary wireless communication devicethat receives at least a portion of the one or more primary data unitsto send a first acknowledgement response after an end of the multi-userframe; and causing the secondary wireless communication device thatreceives at least a portion of the one or more secondary data units tosend a second acknowledgement response after an end of a transmissionperiod for the first acknowledgement response.
 4. The method of claim 1,comprising: starting a recovery back-off associated with the primaryaccess category based on a lack of receiving an immediateacknowledgement response.
 5. The method of claim 1, wherein transmittingthe spatially steered streams comprises transmitting two or more dataframes that are associated with two or more different trafficidentifiers (TIDs) to two or more destinations, respectively.
 6. Themethod of claim 1, wherein determining the secondary access category forthe TXOP comprises determining two or more secondary access categoriesfor the TXOP.
 7. The method of claim 1, wherein the TXOP is based onEnhanced Distributed Channel Access (EDCA).
 8. The method of claim 1,comprising: using a hybrid coordination function (HCF) to control accessto wireless communication resources, the TXOP being based on HCFcontrolled channel access (HCCA).
 9. An apparatus comprising: circuitryto access a wireless communication interface; and processor electronicsconfigured to determine a primary access category for a transmissionopportunity (TXOP) to transmit data to a primary wireless communicationdevice based on a first back-off timer associated with the primaryaccess category, the primary access category being an access categoryincluded in a group of access categories that are associated withdifferent transmission priorities, respectively, determine a secondaryaccess category for the TXOP to transmit data to a secondary wirelesscommunication device, the secondary access category being an accesscategory included in the group of access categories, the secondaryaccess category having a transmission priority different from theprimary access category, control, via the wireless communicationinterface during the TXOP, a transmission of spatially steered streamsthat concurrently provide separate data to respective devices comprisingthe primary wireless communication device and the secondary wirelesscommunication device, the spatially steered streams embodying (i) one ormore primary data units associated with the primary access category and(ii) one or more secondary data units associated with the secondaryaccess category, and control a second back-off timer associated with thesecondary access category and a contention window associated with thesecondary access category, wherein the second back-off timer is notpenalized for a communication failure associated with the primary accesscategory during the TXOP or for a communication failure associated withthe secondary access category during the TXOP, and wherein thecontention window is not penalized for the communication failureassociated with the secondary access category during the TXOP.
 10. Theapparatus of claim 9, wherein the processor electronics are configuredto include the one or more primary data units in a multi-user frame,determine a length of the multi-user frame based on the one or moreprimary data units, limit a length of the one or more secondary dataunits in the multi-user frame based on the determined length, andcontrol a transmission of the multi-user frame during a portion of theTXOP.
 11. The apparatus of claim 10, wherein the processor electronicsare configured to cause the primary wireless communication device thatreceives at least a portion of the one or more primary data units tosend a first acknowledgement response after an end of the multi-userframe, and cause the secondary wireless communication device thatreceives at least a portion of the one or more secondary data units tosend a second acknowledgement response after an end of a transmissionperiod for the first acknowledgement response.
 12. The apparatus ofclaim 9, wherein the processor electronics are configured to select thesecondary access category having a transmission priority higher than theprimary access category.
 13. The apparatus of claim 9, wherein theprocessor electronics are configured to start a recovery back-offassociated with the primary access category based on a lack of receivingan immediate acknowledgement response.
 14. The apparatus of claim 9,wherein the transmission of spatially steered streams includes two ormore data frames that are associated with two or more different trafficidentifiers (TIDs) to two or more destinations, respectively.
 15. Theapparatus of claim 9, wherein the TXOP is based on Enhanced DistributedChannel Access (EDCA).
 16. A system comprising: processor electronicsconfigured to (i) determine a primary access category for a transmissionopportunity (TXOP) to transmit data to a primary wireless communicationdevice based on a first back-off timer associated with the primaryaccess category, the primary access category being an access categoryincluded in a group of access categories that are associated withdifferent transmission priorities, respectively, and (ii) determine asecondary access category for the TXOP to transmit data to a secondarywireless communication device, the secondary access category being anaccess category included in the group of access categories, thesecondary access category having a transmission priority different fromthe primary access category; and circuitry to transmit, via two or moreantennas during the TXOP, spatially steered streams that concurrentlyprovide separate data to respective devices comprising the primarywireless communication device and the secondary wireless communicationdevice, the spatially steered streams embodying (i) one or more primarydata units associated with the primary access category and (ii) one ormore secondary data units associated with the secondary access category,wherein the processor electronics are configured to control a secondback-off timer associated with the secondary access category and acontention window associated with the secondary access category, whereinthe second back-off timer is not penalized for a communication failureassociated with the primary access category during the TXOP or for acommunication failure associated with the secondary access categoryduring the TXOP, and wherein the contention window is not penalized forthe communication failure associated with the secondary access categoryduring the TXOP.
 17. The system of claim 16, wherein the processorelectronics are configured to include the one or more primary data unitsin a multi-user frame, the spatially steered streams embodying themulti-user frame, determine a length of the multi-user frame based onthe one or more primary data units, and limit a length of the one ormore secondary data units in the multi-user frame based on thedetermined length.
 18. The system of claim 16, wherein the processorelectronics are configured to select the secondary access categoryhaving a transmission priority higher than the primary access category.19. The system of claim 16, wherein the processor electronics areconfigured to start a recovery back-off associated with the primaryaccess category based on a lack of receiving an immediateacknowledgement response.
 20. The system of claim 16, wherein thespatially steered streams includes two or more data frames that areassociated with two or more different traffic identifiers (TIDs) to twoor more destinations, respectively.